from Arvore import Arvore
from Cartao import Cartao
from Compra import Compra
from Estabelecimento import Estabelecimento

class Armazenar():

    
    def getArvore(self):
        arquivo="cartoes.txt"
        banco=open(arquivo,"r")
        cartoes=banco.readlines()
        banco.close()
        cont=-1
        arvore= Arvore()

        for i in range(len(cartoes)):
            cartao=cartoes[i].rsplit("\t")
            
            numero = int(cartao[0])
            bandeira = cartao[1]
            nome = cartao[2]
            limite = cartao[3]
            disponivel = cartao[4]
            objeto = Cartao(numero, bandeira, nome, limite, disponivel)
            arvore.insertNodeUnique(objeto)

        
        
        return (arvore)

    def apagar(self, dado):
        if dado == 'cartao':
            arquivo="cartoes.txt"
            banco=open(arquivo, "w")
            banco.writelines('')
            banco.close()
        elif dado == 'estabelecimento':
            arquivo="estabelecimentos.txt"
            banco=open(arquivo, "w")
            banco.writelines('')
            banco.close()
            


    def getArvoreE(self):
        arquivo="estabelecimentos.txt"
        banco=open(arquivo,"r")
        estabelecimentos=banco.readlines()
        banco.close()
        cont=-1
        arvore= Arvore()

        for i in range(len(estabelecimentos)):
            estabelecimento=estabelecimentos[i].rsplit("\t")
            horario=[]
            nome = estabelecimento[0]
            cnpj = estabelecimento[1]
            endereco = estabelecimento[2]
            inicio = estabelecimento[3]
            fim = estabelecimento[4]
            vendido = estabelecimento[5]
            receita = estabelecimento[6]
            horario.append(inicio)
            horario.append(fim)
            objeto = Estabelecimento(nome, cnpj, endereco, horario, vendido, receita)
            arvore.insertNodeUnique(objeto)

        
        
        return (arvore)


    
    def armazenar_compra(self, cartao, estab, valor, data):
        arquivo='compras.txt'
        banco= open(arquivo,"a")
        banco.write(str(cartao.numero) + "\t" +  str(estab.numero) + "\t"+cartao.nome +"\t"+ estab.nome +"\t" + data + "\t" + str(valor) +"\t\n")
        banco.close()


    def getCompras(self, numero):
        arquivo="compras.txt"
        banco=open(arquivo,"r")
        compras=banco.readlines()
        banco.close()
        
        Lista=[]

        for i in range(len(compras)):
            compra=compras[i].rsplit("\t")
            if int(compra[0]) == int(numero):
                
                numero = compra[0]
                cnpj = compra[1]
                nomeC = compra[2]
                nomeE = compra[3]
                data = compra[4]
                valor = compra[5]
                p = Compra(numero, cnpj, nomeC, nomeE, data, valor)
                Lista.append(p)

        return (Lista)



    def getComprasE(self, numero):
        arquivo="compras.txt"
        banco=open(arquivo,"r")
        compras=banco.readlines()
        banco.close()
        
        Lista=[]
        
        for i in range(len(compras)):            
            compra=compras[i].rsplit("\t")            
            if int(compra[1]) == int(numero):
                
                numero2 = compra[0]
                cnpj = compra[1]
                nomeC = compra[2]
                nomeE = compra[3]
                data = compra[4]
                valor = compra[5]
                p = Compra(numero2, cnpj, nomeC, nomeE, data, valor)
                Lista.append(p)

        return (Lista)























    
